#include <float.h> unsigned int _status87(); получает слово статуса плавающей точки
Описание.
Функция _status87 получает слово статуса плавающей точки. Слово статуса плавающей точки является комбинацией 8087/80287 слова статуса и других состояний, обнаруживаемых 8087/80287 handler -ом, таких как переполнение и потеря значимости стека плавающей точки.
Возвращаемое значение.
Биты в возвращаемом значении обозначают статус плавающей точки. Смотрите include -файл <float.h> для полного описания битов, возвращаемых функций _status87.
Замечание!
Большинство из математических библиотечных функций модифицируют слово статуса 8087/80287 с непредсказуемыми результатами. Возвращаемые значения функций _clear87 и _status87 становятся более достоверными после выполнения нескольких операций с плавающей точкой с известными сообщениями слова статуса плавающей точки.
Пример.
#include <stdio.h> #include <float.h> double a = 1e-40, b; float x,y; main() { printf("status=%.4x-clear\n",_status87()); /* запомненное в y является неточным и с потерянной значи- мостью */ y = a; printf("status=%.4x-inexect,underflow\n", _status87()); /* y неверно */ b = y; printf("status=%.4x-inexect,underflow,denormal\n", _status87()); /* очистка пользователем 8087 статуса */ _clear87(); }